package models;

public class Show implements Comparable<Show>
{
	private static class Data
	{
		int dia, mes, ano;
		public Data(int d,int m, int a)
		{
			dia = d;
			mes = m;
			ano = a;
		}
		@Override
		public String toString()
		{
			return "" +  dia + '/' + mes + '/' + ano;
		}
		public static Data stringToData(String str)
		{
			String strs[] = str.split("/");
			if(strs.length != 3) 
			{
				return null;
			}
			int ints[] = new int[3];
			ints[0] = Integer.valueOf(strs[0]);
			ints[1] = Integer.valueOf(strs[1]);
			ints[2] = Integer.valueOf(strs[2]);
			return new Data(ints[0],ints[1],ints[2]);
		}
	}
	private Banda responsavel;
	private double preco;
	private String local;
	private Data diaDoShow;

	public Show(Banda r, String data, double p, String loc)
	{
		responsavel = r;
		diaDoShow = Data.stringToData(data);
		preco = p;
		local = loc;
	}

	@Override
	public int compareTo(Show o) 
	{
		if(this.diaDoShow.ano > o.diaDoShow.ano)
		{
			return 1;
		}
		else if(this.diaDoShow.ano < o.diaDoShow.ano)
		{
			return -1;
		}
		if(this.diaDoShow.mes > o.diaDoShow.mes)
		{
			return 1;
		}
		else if(this.diaDoShow.mes < o.diaDoShow.mes)
		{
			return -1;
		}
		if(this.diaDoShow.dia > o.diaDoShow.dia)
		{
			return 1;
		}
		else if(this.diaDoShow.dia < o.diaDoShow.dia)
		{
			return -1;
		}
		return 0;
	}

	@Override
	public String toString()
	{
		String retorno = "";
		retorno = this.local + ' ' + this.preco + ' ';
		retorno = retorno + this.diaDoShow + ' ' + this.responsavel;
		return retorno;
	}

	public Banda getResponsavel() {
		return responsavel;
	}

	public void setResponsavel(Banda responsavel) {
		this.responsavel = responsavel;
	}

	public double getPreco() {
		return preco;
	}

	public void setPreco(double preco) {
		this.preco = preco;
	}

	public String getLocal() {
		return local;
	}

	public void setLocal(String local) {
		this.local = local;
	}

	public Data getDiaDoShow() {
		return diaDoShow;
	}

	public void setDiaDoShow(int d, int m, int a) {
		this.diaDoShow = new Data(d,m,a);
	}
}


